package com.lm.leetcode.str;

/**
 * @Auther: Min.Liu
 * @Description: 问题：  给你一个字符串 s，找到 s 中符合下列要求的最长子串。
 * 示例 1：
 * 输入：s = "babad"
 * 输出："bab"
 * 解释："aba" 同样是符合题意的答案。但是取"bab"
 * 示例 2：
 *  * 输入：s = "aacabdkacaa"
 *  * 输出："aacabdkacaa"
 * @Date: Created in 14:45 2025/5/8
 */
public class coustomLongestStrDemo {
    public static void main(String[] args) {
        coustomLongestStrDemo demo = new coustomLongestStrDemo();
//        System.out.println(demo.longestPalindrome("babccad"));
//        System.out.println(demo.longestPalindrome("cbbd"));
        System.out.println(demo.longestPalindrome("aacabdkacaa"));
    }

    /*
       开始点 start
       距离 distance
       distance 开始为0 找到相同元素
     */
    public String longestPalindrome(String s) {
        int start = 0;
        int distance = 0;
        int index = 0;
        //"babad" "babccad"
        do {
            for (int i = index+1; i < s.length(); i++) {
                if (s.charAt(index) == s.charAt(i)) {
                    int max = Math.max(i - index, distance);
                    if (distance < max) {
                        distance = max;
                        start = index;
                    }
                    break;
                }
            }
            if (index<s.length()){
                index++;
            }
        } while (distance+ index < s.length() -1);

        return s.substring(start,start+distance+1);
    }
}
